import fs from 'fs'
import path from 'path'
export default [
    //发布作品接口
    {
        url: '/mock/api/pushworks',
        method: 'post',
        response: (req) => {
            let { userId, Base64, workData } = req.body
            console.log(userId, '后端')
            const idx = +new Date() //时间戳事件
            //读取文件
            let works = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), 'utf-8')
            works = JSON.parse(works)
            let newworks = {
                id: idx,
                userId,
                Base64,
                workData, //画布中存储的数据
                partners: [],//添加协作滴数组
            }
            works.push(newworks)
            fs.writeFileSync(
                path.join(__dirname, 'mockdatabase', 'canvaslist.json'),
                JSON.stringify(works)
            )
            return {
                code: 0,
                msg: '发布作品成功！！！',
                data: newworks
            }
        }
    },
    {
        //获取渲染我的作品
        url: '/mock/api/getpushworks',
        method: 'get',
        response: ({ query }) => {
            let { id } = query //get传过来的参数
            // eslint-disable-next-line no-undef
            let works = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), 'utf-8')
            works = JSON.parse(works)
            //识别
            let myworks = works.filter((item) => item.userId === id)
            return {
                code: 0,
                msg: '渲染我的作品成功！！！',
                data: myworks
            }
        }
    },
    {
        //删除我的作品
        url: '/mock/api/delpushworks/:id',
        method: 'get',
        response: (req) => {
            console.log(req, 'REQ')
            let { id } = req.query
            console.log(id, '123123')
            let works = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), 'utf-8')
            works = JSON.parse(works)
            let restore = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'restorelist.json'), 'utf-8')
            //1.读取回收站 转数组有push单发
            restore = JSON.parse(restore)
            let index = works.findIndex((item) => item.id == id) //随机2d
            // 2.把数据workspush进去回收站
            let deletedWork = works[index];
            // 2.把数据workspush进去回收站  
            restore.push(deletedWork); // 使用变量而不是works[index]  
            works.splice(index, 1)
            fs.writeFileSync(
                path.join(__dirname, 'mockdatabase', 'canvaslist.json'),
                JSON.stringify(works)
            )
            //第三步  把数据重新写入回收站
            fs.writeFileSync(path.join(__dirname, 'mockdatabase', 'restorelist.json'), JSON.stringify(restore))
            return {
                code: 0,
                msg: '删除作品并返回回收站成功'
                // id
            }
        }
    },
    {
        url: '/mock/api/cooperation',//添加协作人接口
        method: "post",
        response: (req) => {
            console.log(req, "同类");
            // // 接收作品id
            let { workId, usernameArr } = req.body
            // // 读取works.json 作品数据文件
            console.log(workId, usernameArr);
            let works = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), 'utf-8')
            console.log(works, "works");
            works = JSON.parse(works)
            // // 根据作品id找下标
            let work = works.find((item) => item.id.toString() === workId.toString())
            console.log(work, "找妈妈");
            // // 判断协作人是否被添加过
            // // work.partners数组中 是否有 usernameArr数组中的任意一个用户名
            let bool = usernameArr.some(username => Boolean(work.partners.find(partner => partner.username === username)))
            // // 如果有
            console.log(bool, "BPPL");
            if (bool) {
                return {
                    code: 403,
                    msg: '协作人已经添加过了！'
                }
            }
            // // 如果没有，就添加协作人
            work.partners = work.partners.concat(usernameArr.map(item => {
                return {
                    username: item
                }
            }))
            // // 将添加后的数组重新写入文件
            // eslint-disable-next-line no-undef
            fs.writeFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), JSON.stringify(works))
            return {
                code: 0,
                //   
                msg: '协作人添加成功！'
                // 我协作的作品 
                // 获取协作的作品接口：
                // 定义获取协作作品的请求函数：
                // 在组件中，定义协作作品数组，发请求获取到所有协作的作品，放在数组中：

            }
        }
    },
    /// 获取协作作品
    {
        url: '/mock/api/xiehui/:username',
        method: "get",
        response: (req) => {
            let { username } = req.query
            let works = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), 'utf-8')
            console.log(works, "会尽快美妞水电费黄金时代")
            works = JSON.parse(works),
                works = works.filter((item) => {
                    let name = item.partners.map((itm) => itm.username);
                    return name.includes(username)
                })
            return {
                code: 0,
                msg: "协作的获取作品成功。。。。",
                data: works
            }
        }
    },
    // {
    //     url: '/ mock/api/hui/:username',
    //     method: 'get',
    //     response: (req) => {
    //         let { username } = req.query//读取文件
    //         let works = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), ' utf-8')
    //         works = JSON.parse(works)
    //         works = works.filter((item) => {
    //             let name = item.partners.map((itm) => itm.username)
    //             return name.includes(username)
    //         })
    //         return {
    //             code: 0,
    //             msg: "获取我的协作作品成功", data: works

    //         }
    //     }
    // },

    {//回收站
        url: '/mock/api/getdelstore',
        method: "get",
        response: ({ query }) => {
            let { id } = query
            console.log(id, "saddddddddwe3r如土豆宋涛萨顶顶");
            console.log(id, "ID+++++++");
            let restore = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'restorelist.json'), 'utf-8')
            console.log(restore, "DDDDDDDDDDDDDDDDSDFSDF");
            restore = JSON.parse(restore)
            let MyDel = restore.filter((item) => item.userId == id)
             let index = restore.findIndex((item) => item.id == id) //随机2d
            // 2.把数据workspush进去回收站
            restore.splice(index, 1)
            //重新写入
               fs.writeFileSync(path.join(__dirname, 'mockdatabase', 'restorelist.json'), JSON.stringify(restore))
            return {
                code: 0,
                msg: "获取回收站删除数据成功！！！",
                data: MyDel
            }
        }
    },
    // {
    //     //还原到初始化页
    //     url: '/mock/api/getRestore_Native',
    //     methods: 'get',
    //     response: ({ query }) => {
    //         let { id } = query
    //         let restore = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'restorelist.json'), 'utf-8')
    //         // eslint-disable-next-line no-undef
    //         // let works = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), 'utf-8')
    //      let index = restore.findIndex((item) => item.id == id) //随机2d
    //         console.log(index,"33333333333333index");
    //         // if (index !== -1) {
    //         //     let idx = restore[index].index

    //         //     works.splice(idx, 1, restore[index])
    //         //     // eslint-disable-next-line no-undef
    //         //     fs.writeFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), JSON.stringify(works))
    //         //     restore.splice(index, 1)

    //         //     fs.writeFileSync(path.join(__dirname, 'mockdatabase', 'restorelist.json'), JSON.stringify(restore))
    //         // }
    //         return {
    //             code: 0,
    //             msg: "数据还原成功。。。。。。"
    //         }

    //     }
    // }

    {//还原回收站数据
        url: '/mock/api/getRestore_Native',
        method: 'get',
        response: (req) => {
            // 读取原始作品列表数据  
            // eslint-disable-next-line no-undef
            const { id } = req.query;
            console.log(id, "ID+——");
            let works = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), 'utf-8');
            works = JSON.parse(works);
            console.log(works, "sdfssdf是东方风格的美女");
            // // 读取回收站数据  
            let restore = fs.readFileSync(path.join(__dirname, 'mockdatabase', 'restorelist.json'), 'utf-8');
            restore = JSON.parse(restore);
            console.log(restore, "势力扩大飞机了多少开发建设的离开你");
            // // 找到要恢复的作品在回收站中的位置  
            const workToRecover = restore.find(item => item.id == id);
            console.log(workToRecover, "士大夫士大夫");
            // // 如果找到了作品，则从回收站中删除它，并添加到原始作品列表中  
            if (workToRecover) {
                const index = restore.indexOf(workToRecover);
                //indexOf方法接受一个参数，即要查找的元素值。
                //它从数组的开头（索引0）开始向后查找，找到第一个匹配的元素后返回该元素的索引。
                //如果数组中不存在要查找的元素，则返回-1。
                //可以通过传入第二个参数来指定搜索的起始位置。
                //indexOf方法是区分大小写的，即大小写不同的元素会被视为不同的元素
                if (index !== -1) {
                    restore.splice(index, 1); // 从回收站中删除  
                    works.push(workToRecover); // 添加到原始作品列表中  
                    // 将更改写回到文件中  
                    fs.writeFileSync(path.join(__dirname, 'mockdatabase', 'canvaslist.json'), JSON.stringify(works));
                    fs.writeFileSync(path.join(__dirname, 'mockdatabase', 'restorelist.json'), JSON.stringify(restore));
                    return {
                        code: 0,
                        msg: '作品恢复成功',
                        data: workToRecover
                    }
                }

            }
        }

    }
]
